/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package rest.pojo.conversor;

import entidade.Associacao;
import java.util.ArrayList;
import java.util.List;
import rest.pojo.AssociacaoPOJO;

/**
 *
 * @author geovane
 */
public class AssociacaoConverter {

    private static final AssociacaoConverter uniqueInstance = new AssociacaoConverter();

    private AssociacaoConverter() {

    }

    public static AssociacaoConverter getInstance() {
        return uniqueInstance;
    }

    public static AssociacaoPOJO toAssociacaoPOJO(Associacao associacao) {
        if (associacao != null) {

            AssociacaoPOJO resposta = new AssociacaoPOJO();

            resposta.setId(associacao.getId());
            resposta.setDescricaoAtividade(associacao.getDescricaoAtividade());
            resposta.setEmail(associacao.getEmail());
            resposta.setResponsavel(associacao.getResponsavel());
            resposta.setTelefone(associacao.getTelefone());
            resposta.setLocalizacao(associacao.getLocalizacao());
            resposta.setNome(associacao.getNome());

            return resposta;

        } else {
            return null;
        }
    }

    public static Associacao fromAssociacaoPOJO(AssociacaoPOJO associacaoPOJO) {
        if (associacaoPOJO != null) {
            Associacao resposta = new Associacao();

            resposta.setId(associacaoPOJO.getId());
            resposta.setEmail(associacaoPOJO.getEmail());
            resposta.setLocalizacao(associacaoPOJO.getLocalizacao());
            resposta.setNome(associacaoPOJO.getNome());
            resposta.setResponsavel(associacaoPOJO.getResponsavel());
            resposta.setTelefone(associacaoPOJO.getTelefone());
            resposta.setDescricaoAtividade(associacaoPOJO.getDescricaoAtividade());

            return resposta;

        } else {
            return null;
        }
    }

    public static List<AssociacaoPOJO> toAssociacoesPOJO(List<Associacao> associacoes) {
        if (associacoes != null) {

            ArrayList<AssociacaoPOJO> resposta = new ArrayList<>();

            associacoes.stream().forEach((associacao) -> {
                resposta.add(toAssociacaoPOJO(associacao));
            });

            return resposta;
        } else {
            return null;
        }

    }

    public static List<Associacao> fromAssociacoesPOJO(List<AssociacaoPOJO> associacoesPOJO) {
        if (associacoesPOJO != null) {

            ArrayList<Associacao> resposta = new ArrayList<>();

            associacoesPOJO.stream().forEach((associacaoPOJO) -> {
                resposta.add(fromAssociacaoPOJO(associacaoPOJO));
            });

            return resposta;
        } else {
            return null;
        }
    }

}
